]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Switch all external uses of Main.panel.actor.height to the work area
authorJasper St. Pierre <jstpierre@mecheye.net>
Mon, 28 Jan 2013 05:09:12 +0000 (00:09 -0500)
committerJasper St. Pierre <jstpierre@mecheye.net>
Thu, 7 Feb 2013 03:35:49 +0000 (22:35 -0500)
https://bugzilla.gnome.org/show_bug.cgi?id=692680

js/ui/layout.js
js/ui/overview.js
js/ui/panelMenu.js
js/ui/workspaceSwitcherPopup.js
js/ui/workspaceThumbnail.js

index a3a32ebcaa83a51781129dd3aad6fc9fee6bf807..f308c44468b7d6d742acadce0253983bdf67d64a 100644 (file)
@@ -634,6 +634,13 @@ const LayoutManager = new Lang.Class({
         }
     },
 
+    getWorkAreaForMonitor: function(monitorIndex) {
+        // Assume that all workspaces will have the same
+        // struts and pick the first one.
+        let ws = global.screen.get_workspace_by_index(0);
+        return ws.get_work_area_for_monitor(monitorIndex);
+    },
+
     // This call guarantees that we return some monitor to simplify usage of it
     // In practice all tracked actors should be visible on some monitor anyway
     findIndexForActor: function(actor) {
index a8f7e4abf219341be95b3a5aed0fd643076efbdf..75b8f7ed69d4456b770da88934454da03f32e65e 100644 (file)
@@ -374,15 +374,13 @@ const Overview = new Lang.Class({
         this.hide();
 
         let primary = Main.layoutManager.primaryMonitor;
-
-        let contentY = Main.panel.actor.height;
-        let contentHeight = primary.height - contentY - Main.messageTray.actor.height;
+        let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
 
         this._overview.set_position(primary.x, primary.y);
         this._overview.set_size(primary.width, primary.height);
 
-        this._coverPane.set_position(0, contentY);
-        this._coverPane.set_size(primary.width, contentHeight);
+        this._coverPane.set_position(0, workArea.y);
+        this._coverPane.set_size(workArea.width, workArea.height);
     },
 
     _onRestacked: function() {
index ad3600f8502c4fe36e9f4dc235a1b08946b3a757..aa935e9c49fff83f3ebbe70dff3a19b4d72867fe 100644 (file)
@@ -205,10 +205,8 @@ const Button = new Lang.Class({
         // Setting the max-height won't do any good if the minimum height of the
         // menu is higher then the screen; it's useful if part of the menu is
         // scrollable so the minimum height is smaller than the natural height
-        let monitor = Main.layoutManager.primaryMonitor;
-        this.menu.actor.style = ('max-height: ' +
-                                 Math.round(monitor.height - Main.panel.actor.height) +
-                                 'px;');
+        let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
+        this.menu.actor.style = ('max-height: ' + Math.round(workArea.height) + 'px;');
     },
 
     destroy: function() {
index 6bd124d5d44cc2576b41243455c5376c2b40755f..4005d77ebadafd90f016c8cc9273835033688d8a 100644 (file)
@@ -55,10 +55,9 @@ const WorkspaceSwitcherPopup = new Lang.Class({
 
     _getPreferredHeight : function (actor, forWidth, alloc) {
         let children = this._list.get_children();
-        let primary = Main.layoutManager.primaryMonitor;
+        let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
 
-        let availHeight = primary.height;
-        availHeight -= Main.panel.actor.height;
+        let availHeight = workArea.height;
         availHeight -= this.actor.get_theme_node().get_vertical_padding();
         availHeight -= this._container.get_theme_node().get_vertical_padding();
         availHeight -= this._list.get_theme_node().get_vertical_padding();
@@ -67,7 +66,7 @@ const WorkspaceSwitcherPopup = new Lang.Class({
         for (let i = 0; i < children.length; i++) {
             let [childMinHeight, childNaturalHeight] = children[i].get_preferred_height(-1);
             let [childMinWidth, childNaturalWidth] = children[i].get_preferred_width(childNaturalHeight);
-            height += childNaturalHeight * primary.width / primary.height;
+            height += childNaturalHeight * workArea.width / workArea.height;
         }
 
         let spacing = this._itemSpacing * (global.screen.n_workspaces - 1);
@@ -81,8 +80,8 @@ const WorkspaceSwitcherPopup = new Lang.Class({
     },
 
     _getPreferredWidth : function (actor, forHeight, alloc) {
-        let primary = Main.layoutManager.primaryMonitor;
-        this._childWidth = Math.round(this._childHeight * primary.width / primary.height);
+        let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
+        this._childWidth = Math.round(this._childHeight * workArea.width / workArea.height);
 
         alloc.min_size = this._childWidth;
         alloc.natural_size = this._childWidth;
@@ -122,12 +121,11 @@ const WorkspaceSwitcherPopup = new Lang.Class({
 
         }
 
-        let primary = Main.layoutManager.primaryMonitor;
+        let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
         let [containerMinHeight, containerNatHeight] = this._container.get_preferred_height(global.screen_width);
         let [containerMinWidth, containerNatWidth] = this._container.get_preferred_width(containerNatHeight);
-        this._container.x = primary.x + Math.floor((primary.width - containerNatWidth) / 2);
-        this._container.y = primary.y + Main.panel.actor.height +
-                            Math.floor(((primary.height - Main.panel.actor.height) - containerNatHeight) / 2);
+        this._container.x = workArea.x + Math.floor((workArea.width - containerNatWidth) / 2);
+        this._container.y = workArea.y + Math.floor((workArea.height - containerNatHeight) / 2);
     },
 
     _show : function() {
index fd68ce583ec2dcbc66d9fc398663e3971fc36292..b0300f60322e46e382ca34559d8d4f17aaa016f6 100644 (file)
@@ -759,14 +759,7 @@ const ThumbnailsBox = new Lang.Class({
             this._stateCounts[ThumbnailState[key]] = 0;
 
         // The "porthole" is the portion of the screen that we show in the workspaces
-        let panelHeight = Main.panel.actor.height;
-        let monitor = Main.layoutManager.primaryMonitor;
-        this._porthole = {
-            x: monitor.x,
-            y: monitor.y + panelHeight,
-            width: monitor.width,
-            height: monitor.height - panelHeight
-        };
+        this._porthole = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
 
         this.addThumbnails(0, global.screen.n_workspaces);